1. Field of the Invention
This invention relates generally to intelligent backup systems and, more particularly, to methods and apparatus for intelligently backing up selected data from a host computer""s main storage drive to prevent loss of data or user productivity.
2. Description of the Related Art
In recent years, personal computers have become an integral necessity in both the work and home environment. For many people, personal computers have become their main communication system, which can be used for sending and receiving electronic mail (i.e., e-mail), transferring files over a local area network (LAN), and communicating over the world wide web via the Internet. Because people have placed such a high level of dependence on their personal computers, when a failure (i.e., crash) to either a hardware or software component occurs, the user will generally suffer greatly in terms of productivity loss.
Many times, failures to either hardware or software components can lead to the complete loss of personal data, which often cannot be recovered using standard data recovery tools. In efforts to remedy the severity of such data loss, many people perform routine backups of their entire hard drives or files. In this manner, if an unrecoverable failure were to occur, then the user would lose only the data that was created between the last backup operation and the unrecoverable failure.
Unfortunately, relying on periodic backups of a computer""s storage drives (i.e., hard drives) does not eliminate the loss in productivity suffered while the failure is being attended to, and the need to reconstruct all of the lost data that was created between the last backup and the failure. To further complicate the reconstruction process, most of today""s computer software products have to be installed using complex installation software that is designed to place each component of the software product in the correct system folder location, registry file, startup file, etc., to preserve proper functionality with the computer""s operating system. As a result, even though the entire contents of a backup can be retrieved from the backup media, the restoring of a subsequently repaired storage drive will require a substantial amount of reconstruction.
Although the restoration of failed storage devices can sometimes be a trivial process when only a minor number of programs are re-installed onto the failed computer system, most of today""s computer systems use a wide number of programs, each requiring custom installation for proper operation. Furthermore, because most computer users purchase, update, and modify computer programs over the Internet, it is often impossible to reconstruct the original state of all programs, patches, or executables that are loaded onto a computer without keeping detailed logs of where each component was acquired. As a result, when attempts to reconstruct a user""s computer system are made, many of the originally installed software programs or components may not be installed because they are no longer available or supported by the original supplier.
Not with standing that most failures that are a result of a hardware malfunction or a software problem can be fixed, either by complete replacement or by performing repairs, users still experience data losses that produce harsh penalties in productivity or require significant down time. That is, even if users systematically backup their system regularly, some amount of data will be lost between the time of the last backup and the subsequent restoration. In certain circumstances, even if only a small amount of data is lost, that small amount may translate into many hours of reconstruction time. Furthermore, if the lost data was a time sensitive piece of data, then reconstruction over many hours or days may not be acceptable.
In view of the foregoing, there is a need for an intelligent backup system and method for implementing the system to protect data of a computer""s storage drive in case a system failure occurs. There is also a need for a system and a method for implementing the system that will enable a user to continue working from the intelligently backed-up data after a system failure occurs, and then restore the failed system after the system failure is intelligently identified and repaired.
Broadly speaking, the present invention fills these needs by providing an intelligent backup and restore system that prevents downtime productivity losses, and assists the user in trouble shooting the failure, repairing the failure if possible, and restoring the failed system back to its pre-failure condition. All of these functionalities are provided to the user through a user friendly graphical user interface that helps the user resume his or her normal computer use by booting to a peripheral storage device (that holds an intelligently backup data set) while the failure is remedied. It should be appreciated that the present invention can be implemented in numerous ways, including as a process, an apparatus, a system, a device, a method, or a computer readable medium. Several inventive embodiments of the present invention are described below.
In one aspect of the invention, a method for managing a secondary storage device connected to a computer system having a primary storage device is provided. In this method, a partition session selector device driver is first hooked in a layered drive structure. An application programming interface call to obtain information related to storage devices connected to the computer system is then performed. In one embodiment, the partition session selector device driver traps the application programming interface call. The partition session selector device driver is then communicated with directly via an interface call to manage a user accessible representation of the primary and secondary storage devices.
The partition session selector device driver is preferably hooked in the layered drive structure before any physical drives. The interface call that communicates with the partition session selector device driver is preferably an IOCTL interface call that is specific to the partition session selector device driver. In one embodiment, the IOCTL interface call obtains information related to the secondary storage device, and the method further includes the operation of obtaining information related to storage devices connected to the computer system from a system registry to compile a complete set of data relating to the physical and logical representations of the primary and secondary storage devices. This complete set of data includes the information obtained from the application programming interface, the partition session selector device driver, and the system registry.
The partition session selector device driver is preferably configured to hide the representation of the secondary storage device from a user when the computer system boots from the primary storage device and to hide the representation of the primary storage device from a user when the computer system boots from the secondary storage device. The secondary storage device is preferably a hard drive or a removable media drive.
In another aspect of the invention, a computer readable media is provided. In one embodiment, the computer readable media contains program instructions implementing the above-described method for managing a secondary storage device connected to a computer system having a primary storage device. Thus, in this embodiment the computer readable media contains program instructions for (1) hooking a partition session selector device driver in a layered drive structure, (2) performing an application programming interface call to obtain information related to storage devices connected to the computer system, (3) trapping the application programming interface call, and (4) communicating with the partition session selector device driver directly via an interface call to manage a user accessible representation of the primary and secondary storage devices.
In another embodiment, the program instructions for communicating with the partition session selector device driver include program instructions for obtaining information related to the secondary storage device. In this embodiment, the computer readable media further includes program instructions for obtaining information related to storage devices connected to the computer system from a system registry to compile a complete set of data relating to the physical and logical representations of the primary and secondary storage devices. In yet another embodiment, the partition session selector device driver is configured to implement program instructions for hiding the representation of the secondary storage device from a user when the computer system boots from the primary storage device and to implement program instructions for hiding the primary storage device from the user when the computer system boots from the secondary storage device.
The backup and restore system of the present invention is advantageously designed to intelligently protect a user""s data and productivity upon experiencing a hard disk failure. In one embodiment, once the backup and restore system is installed and setup, the backup operations are performed in an incremental fashion (e.g., after the initial full backup, only those files that have changed from one backup to another will be backed up) to a peripheral storage device media. It should be appreciated that this incremental backup technique provides a powerful level of performance enhancement over conventional backup systems.
Another advantage of the intelligent backup and restore system of the present invention is that it substantially eliminates the tremendous downtime that is typical of when a hard disk crash is experienced and no backup or simple conventional backup techniques are used. As a result, user productivity will no longer suffer when hard disk failures occur. In addition, the embodiments of the present invention also assist the user in attempting to repair the crashed hard disk. However, if the crashed hard disk is not repairable, the system will automatically detect when a new hard disk is added to the user""s system, and then assists in partitioning and formatting the hard disk for the user. When a new hard disk is prepared or the old hard disk is repaired, the system will restore the operating system and data files to their current state as now present on the peripheral storage device media. Upon re-booting, the newly restored hard disk will once again become the boot device. Another advantage of the present invention is that the peripheral storage device media does not have to be identical to that of the system""s hard drive. More specifically, even though most computer systems implement IDE/EIDE hard drives, the peripheral storage device (that is internal or external) does not have to be an IDE/EIDE drive. Although they can be the same, they may be of any type, standard, or size other than that of the computer system. Further yet, because the peripheral storage device media may be of a different kind and size than that of the computer system, when the spare tire backup is created, a file-based copying operation is advantageously implemented.
Other aspects and advantages of the invention will become apparent from the following detailed description, taken in conjunction with the accompanying drawings, illustrating by way of example the principles of the invention.